package com.zhaopin.springtolog4j;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;


//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;

/**
 * 一、
 * 只配制一个spring-core 的情况
 * spring默认使用的是jcl输出日志，由于你此时并没有引入Log4j的日志框架，jcl会以jul做为日志框架
 * class org.apache.commons.logging.LogAdapter$JavaUtilLog
 * 十月 30, 2021 8:25:01 下午 com.zhaopin.springtolog4j.SpringLog main
 * 信息: hello
 *
 * 二、使用slf4j调用log4j2的情况 输出情况如下
 * 而你的应用中，采用了slf4j+log4j-core，即log4j2进行日志记录
 * class org.apache.commons.logging.LogAdapter$Log4jLog
 * 20:28:16.275 INFO  com.zhaopin.springtolog4j.SpringLog 22 main - hello
 *
 * 三、排除了spring-core中的jcl的情况，需要修改引入的jar, 还需要修改factory引入的代码，经过验证不排除jcl模块依然生效
 * class org.apache.logging.slf4j.Log4jLogger
 * 20:32:44.482 INFO  com.zhaopin.springtolog4j.SpringLog 32 main - hello
 *
 * 四、可以原生jcl调的jul转 slf4j，加入jcl-over-slf4j
 * class org.apache.commons.logging.LogAdapter$Log4jLog
 * 20:38:02.012 INFO  com.zhaopin.springtolog4j.SpringLog 37 main - hello
 * 有个疑问，感觉2 和 4没有啥区别，加不加jcl-over-slf4j都一样呢
 */
public class SpringLog {

   private static Log logger =  LogFactory.getLog(SpringLog.class);
//    private static Logger logger = LoggerFactory.getLogger(SpringLog.class);
    public static void main(String[] args) {
        System.out.println(logger.getClass());
        logger.info("hello");

    }
}
